import md5 from 'js-md5';

export function signatureGenerate({ data, url }) {
  // 参数签名密钥 + token + 时间 + url
  // 密钥,可以是前耳机约定好的这一串,也可以是随机的,动态的。
  const secret = '123123';
  // 时间戳
  const timestamp = new Date().getTime();

  // 将data转换为JSON字符串
  let dataStr = '';
  if (data) {
    dataStr = JSON.stringify(data);
    dataStr += '&';
  }

  console.log(data, 'data');
  console.log(url, 'url');

  // 生成签名
  const str =
    dataStr + 'secret=' + secret + '&timestamp=' + timestamp + '&url=' + url;
  console.log(str, 'str');
  const sign = md5(str).toUpperCase();

  return {
    signature: sign,
    timestamp,
    secret
  };
}

// // 参数排序
// function dataSort(obj) {
//   if (JSON.stringify(obj) === "{}" || obj === null || typeof obj !== 'object') {
//     return {};
//   }
//   const key = Object.keys(obj)?.sort();
//   if (!Array.isArray(key) || key.length === 0) {
//     return obj;
//   }
//   const newObj = {};
//   for (let i = 0; i < key.length; i++) {
//     newObj[key[i]] = obj[key[i]];
//   }
//   return newObj;
// }

// // 参数序列化
// function dataSerialize(sortObj) {
//   let strJoin = '';
//   for (const key in sortObj) {
//     if (Array.isArray(sortObj[key])) {
//       const filteredArray = sortObj[key].map(item => {
//         if (typeof item === 'object' && item !== null) {
//           const newItem = { ...item };
//           Object.keys(newItem).forEach(k => {
//             if (newItem[k] === null) {
//               delete newItem[k];
//             }
//           });
//           return newItem;
//         } else {
//           return item;
//         }
//       });
//       const arrayStr = JSON.stringify(filteredArray);
//       strJoin += `${key}=${arrayStr}&`;
//     } else if (typeof sortObj[key] === 'object' && sortObj[key] !== null) {
//       strJoin += `${key}=${JSON.stringify(sortObj[key])}&`;
//     } else if (sortObj[key] !== null && sortObj[key] !== undefined) {
//       strJoin += `${key}=${sortObj[key]}&`;
//     }
//   }
//   // 返回去掉最后一个 '&' 的字符串
//   return strJoin;
// }
